/**
 * @file vuex
 *
 * @author fanxingguang@baidu.com
 * 2016年11月14日
 */

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

// 创建一个对象来保存应用启动时的初始状态
const state = {
    userInfo: {
        userId: '',
        username: ''
    },
    currentRoute: '/'
};
// 创建一个对象存储一系列我们接下来要写的 mutation 函数
const mutations = {
    setUserInfo: (state, userInfo) => {
        state.userInfo = userInfo;
    },
    setCurrentRoute: (state, currentRoute) => {
        state.currentRoute = currentRoute;
    }
};

const actions = {};

// 整合初始状态和变更函数，我们就得到了我们所需的 store
// 至此，这个 store 就可以连接到我们的应用中
export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters: {
        userInfo: state => state.userInfo,
        currentRoute: state => state.currentRoute
    }
});
